package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 公共上传对象 common_uploads
 * 
 * @author ruoyi
 * @date 2025-04-20
 */
public class CommonUploads extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 ID */
    private String id;

    /** 唯一上传 ID */
    @Excel(name = "唯一上传 ID")
    private String uploadId;

    /** 原始文件名 */
    @Excel(name = "原始文件名")
    private String fileName;

    /** 文件存储路径 */
    @Excel(name = "文件存储路径")
    private String filePath;

    /** 文件大小（字节） */
    @Excel(name = "文件大小", readConverterExp = "字=节")
    private String fileSize;

    /** 文件 MIME 类型 */
    @Excel(name = "文件 MIME 类型")
    private String fileType;

    /** 上传时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上传时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date uploadTime;

    /** 上传者 ID */
    @Excel(name = "上传者 ID")
    private String uploaderId;

    /** 上传者名称 */
    @Excel(name = "上传者名称")
    private String uploaderName;

    /** 所属模块或业务场景 */
    @Excel(name = "所属模块或业务场景")
    private String module;

    /** 关联的业务数据 ID */
    @Excel(name = "关联的业务数据 ID")
    private String relatedId;

    /** 文件描述或备注 */
    @Excel(name = "文件描述或备注")
    private String description;

    /** 上传状态（success, pending, failed） */
    @Excel(name = "上传状态", readConverterExp = "s=uccess,,p=ending,,f=ailed")
    private String status;

    /** 上传失败时的错误信息 */
    @Excel(name = "上传失败时的错误信息")
    private String errorMessage;

    /** 存储提供商 */
    @Excel(name = "存储提供商")
    private String storageProvider;

    /** 原始上传元数据 */
    @Excel(name = "原始上传元数据")
    private String originalData;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setUploadId(String uploadId) 
    {
        this.uploadId = uploadId;
    }

    public String getUploadId() 
    {
        return uploadId;
    }

    public void setFileName(String fileName) 
    {
        this.fileName = fileName;
    }

    public String getFileName() 
    {
        return fileName;
    }

    public void setFilePath(String filePath) 
    {
        this.filePath = filePath;
    }

    public String getFilePath() 
    {
        return filePath;
    }

    public void setFileSize(String fileSize) 
    {
        this.fileSize = fileSize;
    }

    public String getFileSize() 
    {
        return fileSize;
    }

    public void setFileType(String fileType) 
    {
        this.fileType = fileType;
    }

    public String getFileType() 
    {
        return fileType;
    }

    public void setUploadTime(Date uploadTime) 
    {
        this.uploadTime = uploadTime;
    }

    public Date getUploadTime() 
    {
        return uploadTime;
    }

    public void setUploaderId(String uploaderId) 
    {
        this.uploaderId = uploaderId;
    }

    public String getUploaderId() 
    {
        return uploaderId;
    }

    public void setUploaderName(String uploaderName) 
    {
        this.uploaderName = uploaderName;
    }

    public String getUploaderName() 
    {
        return uploaderName;
    }

    public void setModule(String module) 
    {
        this.module = module;
    }

    public String getModule() 
    {
        return module;
    }

    public void setRelatedId(String relatedId) 
    {
        this.relatedId = relatedId;
    }

    public String getRelatedId() 
    {
        return relatedId;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setErrorMessage(String errorMessage) 
    {
        this.errorMessage = errorMessage;
    }

    public String getErrorMessage() 
    {
        return errorMessage;
    }

    public void setStorageProvider(String storageProvider) 
    {
        this.storageProvider = storageProvider;
    }

    public String getStorageProvider() 
    {
        return storageProvider;
    }

    public void setOriginalData(String originalData) 
    {
        this.originalData = originalData;
    }

    public String getOriginalData() 
    {
        return originalData;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("uploadId", getUploadId())
            .append("fileName", getFileName())
            .append("filePath", getFilePath())
            .append("fileSize", getFileSize())
            .append("fileType", getFileType())
            .append("uploadTime", getUploadTime())
            .append("uploaderId", getUploaderId())
            .append("uploaderName", getUploaderName())
            .append("module", getModule())
            .append("relatedId", getRelatedId())
            .append("description", getDescription())
            .append("status", getStatus())
            .append("errorMessage", getErrorMessage())
            .append("storageProvider", getStorageProvider())
            .append("originalData", getOriginalData())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
